package com.thesis.manage.sso.controller;

import com.thesis.manage.common.utils.Result;
import com.thesis.manage.service.LoginRegisterService;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;

/**
 * @author php
 * @date 2018/1/23
 */
@RestController
@RequestMapping("/loginRegister")
public class LoginRegisterController {

    @Resource
    private LoginRegisterService loginRegisterService;

    /**
     * 用户注册
     *
     * @param account  账号
     * @param password 密码
     * @param type     类型
     */
    @PostMapping("/register")
    public Result register(String account, String password, Integer type) {
        return this.loginRegisterService.register(account, password, type);
    }

    /**
     * 用户登录
     *
     * @param account  用户名
     * @param password 密码
     * @param type     类型
     * @return result
     */
    @PostMapping("/login")
    public Result login(String account, String password, Integer type) {
        return this.loginRegisterService.login(account, password, type);
    }

    /**
     * 通过token获取用户信息
     *
     * @param token 令牌
     * @return result
     */
    @GetMapping("/userInfo")
    public Result findUserByToken(String token) {
        return this.loginRegisterService.findUserByToken(token);
    }

    /**
     * 验证token
     *
     * @param token 令牌
     * @return result
     */
    @PostMapping("/check")
    public Result checkToken(String token) {
        return this.loginRegisterService.checkToken(token);
    }

    /**
     * 更新过期时间
     *
     * @param token 令牌
     * @param type  类型
     */
    @PutMapping("/expire")
    public void expire(String token, Integer type) {
        this.loginRegisterService.expire(token, type);
    }

    /**
     * 退出登录
     *
     * @param token token
     * @return result
     */
    @DeleteMapping("/logout")
    public Result logout(String token) {
        return this.loginRegisterService.logout(token);
    }
}
